#include <stdio.h>
#include <math.h>
int sum(int a, int b) {
    return a + b;
}


/**
 * 初始化数组
 */
int arrayLength;
#define MAXN 10
int *initArray(int *array)
{
    printf("请输入一个数组中存放的数量:\n");
    int n;
    // int array[MAXN];
    int num;
    scanf("%d",&n);
    arrayLength = n;
    for (int i = 0; i < n; i++)
    {
        printf("请输入数组中第%d的值:\n" ,i + 1);
        scanf("%d", &num);
        array[i] = num;
    }
   array;
}
void getMInAndIndex()
{
    int array[MAXN];
    int *newArray = initArray(array);
    int min = array[0];
     int index;
    for(int  i = 1; i < arrayLength; i++)
    {
        if (newArray[i] < min)
        {
            min = newArray[i];
            index = i;
        }
    }

    printf("min=%d,index=%d", min, index);
}

void transferSecondaryArray()
{
    int a[3][3], elem;
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            printf("请输入第%d行第%d个数值:\n", i + 1, j + 1);
            scanf("%d",&elem);
            a[i][j] = elem;
        }
    }
    printf("\n");
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            // printf("请输入第%d行第%d个数值:\n",i+1,j+1);
            // scanf("%d",&elem);
            printf("%4d", a[i][j]);
        }
        printf("\n");
        }
    // 专职
    for (int i = 0;i<3;i++)
    {
        for (int j = 0; j < 3; j++)
        {
            // if (i >= j)
            {
                int temp = a[i][j];
                a[i][j] = a[j][i];
                a[j][i] = temp;
        }
        }
    }

    printf("\n");
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            // printf("请输入第%d行第%d个数值:\n",i+1,j+1);
            // scanf("%d",&elem);
            printf("%4d", a[i][j]);
    }
        printf("\n");
    }
}
/**
 * 回文数判断
 */
void isPalin()
{
    // 初始化数组
    //  int maxn;
    char strs[80];
    int k = 0;
    // 获取用户输入字符串
    printf("enter a string\n");
    while ((strs[k] = getchar()) != '\n')
    {
        k++;
    }
    // 输入字符串结束标记
    strs[k] =  '\0';
    for (int i = 0; i < k; i++)
      printf("%c ", strs[i]);
    }
    printf("\n");
    // 判断是否为回文数
    int i = 0;
    k = k - 1;
    while (i < k)
    {
        if (strs[i] != strs[k])
        {
            break;
        }
        k--;
        i++;
    }
 if (i >= k)
    {
        printf("是回文");
        }
    else
    {
        printf("不是回文");
    }
}

// 提取数字字符作为整数
void extractNum()
{
    // 初始化数组信息
    char ch[10];
    int k = 0;
    while ((ch[k] = getchar()) != '\n' && k < 9)
    {
        k++;
    }
    ch[k] = '\0';

    printf("\n");
    for (int i = 0; i < k; i++)
    {
        printf("%2c", ch[i]);
    }
    printf("\n");

    int digit = 0;

    for (int i = 0; ch[i] != '\0'; i++)
    {
    if (ch[i] >= '0' && ch[i] <= '9')
        {
            digit = digit * 10 + ch[i] - '0';
        }
    }  printf("\n");
    printf("digit = %d", digit);
}

// 从字符串中查询字符的最大下标
void findStrMaxIndexInStrs()
{
    // 初始化字符串
    char strs[80];
     f("enter a strings:\n");
    int    while ((strs[k] = getchar()) != '\n' && k < 79)
    {
        k++;
    }
     k] = '\0';
    printf("this is your  :\n"   for (int i = 0; strs[i] != '\0'; i++)
    {
        putchar(strs[i]);
    }
    printf("\n") 

    printf("please enter a char to search:\n");
    char ch;
    scanf("%c", &ch);

    // 开始查找数据并且输出最大下标
    //表标记
    int index = -1;
    for (int i = 0; strs[i] != '\0'; i++)
    {
        if (strs[i]==ch)
        {
            index = i;
        }
    }

    if (index != -1)
    {
        printf("max_index=%d", index);
        }
    else
    {
        printf("not fo");
        }
}
// 逆序输出字符串
void reverseStrs()
{
    // 初始化字符串
    char strs[80];
    printf("please enter a strings:\n");
    printf("\n");
    int k = 0;
    while ((strs[k] = getchar()) != '\n' && k <  9)
    {
        k++;
    }
    strs[k] = '\0';
    printf("\n");
    printf("before reserve:\n");
    printf("\n");
    for (int i = 0; strs[i] != '\n'; i++)
    {
        putchar(strs[i]);
    }

    printf("\n");
    printf("after reverse:\n");
    printf("\n");
    k - 1;
    int i = 0;
    char temp;
    while (i < k)
    {
        temp = strs[i];
        strs[i] = strs[k];
        strs[k] = temp;
        k--;
        i++;
    }

    for (int i = 0; strs[i] != '\0'; i++)
    {
        putchar(strs[i]);
    }
}

int main()
{
     reverseStrs();
//    findStrMaxIndexInStrs();
    //  extractNum();
    //   isPali     //    transferSecondaryArray();
    //     f("你 ");
    //     sum();
    //     getPriceForGoods();
    //     orrderInputNum();
    //     isTriangle();
    //     seqSum();
    //     testNum();
    //     reverseNum();
    //     getFactSumEmbed();
    //     outputFib();
    //    verifyTest2();
      //printTriangle();
    //    seqPrintNum();
    //    verifyTest3();
    //    getLozenge();
    //    printPrime();
    //    printNumTower();
// printf("%d\n",fun(1234567));
    //    printf("%d\n",fun(67));
    //    getMInAndIndex();
}